package com.example.androidroomdemo.Entities;

import androidx.room.ColumnInfo;
import androidx.room.Entity;
import androidx.room.Ignore;
import androidx.room.PrimaryKey;

/**
 * @author: tjf
 * @date: 2022-10-31
 * @desc： 1、@Entity：Room实体类注解 ---> 默认情况下，Room 将【类名称】用作数据库【表名称】
 * *      注:如果您希望【数据库表】具有不同的名称，请设置 @Entity 注解的 tableName 属性
 * *  2、PrimaryKey: 主键（ autoGenerate = true 主键自增 ），作用：唯一标识相应数据库表中的每一行
 * *  3、@ColumnInfo：数据库表字段---> 默认情况下，使用【字段名称】作为数据库中的【列名称】
 * *      注：如果您希望【数据表里的列】具有不同的名称，请将 @ColumnInfo 注解添加到该字段并设置 name 属性
 * *  4、Ignore: 默认情况下，Room 会为实体中定义的每个字段创建一个列。 如果您不想保留该字段，则可以使用 @Ignore 为字段添加注解
 */
@Entity(tableName = "loginUser")
public class User {
    @PrimaryKey(autoGenerate = true)
    int id;
    @ColumnInfo(name = "name")
    String aliasName;
    int age;
    String ads;
    @Ignore
    String avatar;
    //数据库升级测试的 新增字段
    int gender = 0;

    //需要一个无参构造
    public User() {
    }

    public User(String aliasName, int age, String ads, String avatar) {
        this.aliasName = aliasName;
        this.age = age;
        this.ads = ads;
        this.avatar = avatar;
    }

    public void setId(int id) {
        this.id = id;
    }

    public int getId() {
        return id;
    }

    public String getAliasName() {
        return aliasName;
    }

    public void setAliasName(String aliasName) {
        this.aliasName = aliasName;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getAds() {
        return ads;
    }

    public void setAds(String ads) {
        this.ads = ads;
    }

    public String getAvatar() {
        return avatar;
    }

    public void setAvatar(String avatar) {
        this.avatar = avatar;
    }

    public int getGender() {
        return gender;
    }

    public void setGender(int gender) {
        this.gender = gender;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", aliasName='" + aliasName + '\'' +
                ", age=" + age +
                ", ads='" + ads + '\'' +
                ", avatar='" + avatar + '\'' +
                ", gender=" + gender +
                '}';
    }
}
